import { getCookie } from './util.js'

export let wxshare = function(obj, shareInterfaces) {
    let wx = require('weixin-js-sdk');
    let params = {
            debug: false,
            appId: getCookie('appId'),
            timestamp: getCookie('timestamp'),
            nonceStr: getCookie('nonceStr'),
            signature: getCookie('signature'),
            jsApiList: shareInterfaces.slice(0)
        }
        //接口数组会被修改 onMenuShareAppMessage->menu:share:app:message
    wx.config(params);

    wx.ready(function() {
        for (var interfaceStr in obj) {
            if (shareInterfaces.indexOf(interfaceStr) != -1) {
                wx[interfaceStr](obj[interfaceStr]);
            }
        }

        //config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，
        //config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，
        //则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。

    });

    wx.error(function(res) {
        // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，
        //也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
        // todo   

    });

}


/**
 * 通过cookie获取appid,timestamp,nonceStr,signature
 * 
 * 申请接口jsApiList后返回 wx实例,直接
 * @param {Array} interfaceArray
 * @return {Object} wxInstance
 */
export let wxInstance = function(interfaceArray) {

    let wx = require('weixin-js-sdk');
    let params = {
            debug: false,
            appId: getCookie('appId'),
            timestamp: getCookie('timestamp'),
            nonceStr: getCookie('nonceStr'),
            signature: getCookie('signature'),
            jsApiList: interfaceArray.slice(0)
        }
        //接口数组会被修改 onMenuShareAppMessage->menu:share:app:message
    wx.config(params);


    wx.ready(function() {
        // return wx;

        console.log("wx ready");
        //config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，
        //config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，
        //则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。

    });

    wx.error(function(res) {
        // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，
        //也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
        // todo   
        console.log(res)

    });
    return wx;

}